Mise à jour le 05/12/2021
Les binaires de bases

Les binaires de bases

💣️Cette page sera bientôt supprimée.


1. Contexte

Par défaut, Debian embarque plusieurs binaires vitaux que l'on peut trouver dans le dossier /bin.

En voici une liste qui doit être peu ou prou la même depuis des années (`ls /bin`):

bash bzip2recover date egrep hciconfig lowntfs-3g mv ntfscmp pax red ss systemd-notify uncompress zgrep
brltty bzless dd false hostname ls nano ntfsfallocate paxcpio rm static-sh systemd-sysusers unicode_start zless
bunzip2 bzmore df fgconsole ip lsblk nc ntfsfix paxtar rmdir stty systemd-tmpfiles vdir zmore
busybox cat dir fgrep journalctl lsmod nc.openbsd ntfsinfo pidof rnano su systemd-tty-ask-password-agent wdctl znew
bzcat chacl dmesg findmnt kbd_mode mkdir netcat ntfsls ping run-parts sync tar which
bzcmp chgrp dnsdomainname fuser keyctl mknod netstat ntfsmove ping4 sed systemctl tempfile ypdomainname
bzdiff chmod domainname fusermount kill mktemp networkctl ntfsrecover ping6 setfacl systemd touch zcat
bzegrep chown dumpkeys getfacl kmod more nisdomainname ntfssecaudit plymouth setfont systemd-ask-password true zcmp
bzexe chvt echo grep ln mount ntfs-3g ntfstruncate ps setupcon systemd-escape udevadm zdiff
bzfgrep cp ed gunzip loadkeys mountpoint ntfs-3g.probe ntfsusermap pwd sh systemd-hwdb ulockmgr_server zegrep
bzgrep cpio efibootdump gzexe login mt ntfscat ntfswipe rbash sh.distrib systemd-inhibit umount zfgrep
bzip2 dash efibootmgr gzip loginctl mt-gnu ntfscluster openvt readlink sleep systemd-machine-id-setup uname zforce


2. La commande rm

Le rm ("remove") est une commande vitale qui permet de supprimer un fichier (ou un dossier) :

2.1 Pour supprimer un fichier

rm fichier.txt


2.2 Pour supprimer un dossier

On peut procéder de deux manières :

rm -r dossier
# Notes: 
# On peut également utiliser -R ou --recursive à la place de -r


rmdir dossier


2.2.1 Astuce : supprimer un dossier contenant trop d'éléments :

Parfois, le rm ne fonctionne pas car l'ensemble des fichiers du répertoires semble être scanné avant d'être effacé.

On peut alors procédé de cette façon là :

cd dossier;
ls | xargs rm -f


Équivaut à

cd dossier;
ls | while read param
do
rm -f param
done


3. La commande grep

Le grep (globally search for a regular expression and print matching lines) permet de trouver les lignes qui correspondent à une expression régulière

3.1 Exemple : parser une page web et garder tous les URLs qui ont un certain pattern

Prenons ce cas :
- une page web contient plusieurs liens <a href=""> qui nous intéressent
- on souhaite la scanner et récupérer l'ensemble de ces liens et les dédoublonner

GET https://www.domain.com/xxx/aaa | grep -aoP "/xxx/[\-a-z0-9]+.html" | sort | uniq

# Résultat :
# …
# /xxx/aaa-111.html
# /xxx/bbb-222.html
# /xxx/ccc-333.html


4. La commande head

Le head affiche par défaut les 10 premières lignes d’un fichier

4.1 Exemple du head pour afficher les 20 premières lignes d'un fichier

head -20 /tmp/fichier.txt


5. La commande tail

Le head affiche par défaut les 10 dernière lignes d’un fichier

5.1 Exemple du tail pour afficher les 20 dernières lignes d'un fichier

tail -20 /tmp/fichier.txt


5.2 Afficher en contenu les changements dans un fichier

Le tail -f permet de d’afficher en temps réel les dernières lignes ajoutées à un fichier (par exemple un log de serveur web).

tail -f access.log